/**
 * 2010(c) Copyright Oceansoft Information System Co.,LTD. All rights reserved.
 * <p>
 * Compile: JDK 1.6+
 * <p>
 * 版权所有(C)：江苏欧索软件有限公司
 * <p>
 * 公司名称：江苏欧索软件有限公司
 * <p>
 * 公司地址：中国苏州科技城青山路1号
 * <p>
 * 网址: http://www.oceansoft.com.cn
 * <p>
 * 版本: 苏州公安统一用户管理平台1.0
 * <p>
 * 作者: 090922(陈伟)
 * <p>
 * 文件名:SysInitListener.java
 * <p>
 * 类产生时间: 2012-7-19 下午6:03:08
 * <p>
 * 负责人: 090922(陈伟)
 * <p>
 * Email:javacspring@gmail.com
 * <p>
 * 所在组 : 苏州公安统一用户管理平台
 * <p>
 * 所在部门: 电信/国土——技术二部
 * <p>
 * <p>
 */
package com.oceansoft.core.common.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.oceansoft.core.common.constant.ConfigItem;

/**
 * 系统配置项加载监听
 * 
 * @author chenw
 * 
 */
public class SysInitListener implements ServletContextListener {
	ServletContext ctx;

	@Override
	public void contextDestroyed(ServletContextEvent event) {
		this.ctx = null;
	}

	@Override
	public void contextInitialized(ServletContextEvent event) {
		System.out.println(">>>>>>>>>>>>>>>>系统配置初始化开始.....");
		ctx = event.getServletContext();
		WebApplicationContext springCtx = WebApplicationContextUtils
				.getWebApplicationContext(event.getServletContext());
		String _real = ctx.getRealPath("/WEB-INF/config/properties/sys_config.properties");
		
		

		// web目录绝对路径webapps\BRMP\
		String webRealPath = ctx.getRealPath("/");
		System.out.println("----webRealPath is [" + webRealPath + "]----");
		ConfigItem item1 = new ConfigItem();
		item1.setKey(CommonUtilCache.KEY_WebRealPath);
		item1.setValue(webRealPath);
		CommonUtilCache.putItem(CommonUtilCache.KEY_WebRealPath, item1);
		try {
			Properties props = new Properties();
			props.load(new FileInputStream(new File(_real)));
			String[] _keys = props.keySet().toArray(new String[0]);
			for (String key : _keys) {
				ctx.setAttribute(key, props.getProperty(key));
			}
			System.out.println(">>>>>>>>>>>>>>>>加载字典表数据开始.....");
			//加载申报奖励等级字典项
//			IDictionaryDao dictDao = springCtx.getBean("dictionaryDaoImpl",IDictionaryDao.class);
//			List<Dict> list1 = dictDao.findByParentId(1L);
//			ctx.setAttribute("DICT_SBGC_JTJL", list1);
//			List<Dict> list2 = dictDao.findByParentId(2L);
//			ctx.setAttribute("DICT_SBGC_GRJL", list2);
//			List<Dict> list3 = dictDao.findByParentId(3L);
//			ctx.setAttribute("DICT_ZWCC", list3);
			System.out.println(">>>>>>>>>>>>>>>>加载字典表数据成功.....");
			
			System.out.println(">>>>>>>>>>>>>>>>属性配置文件加载成功.....");
		} catch (IOException e) {
			System.out.println(">>>>>>>>>>>>>>>>属性配置文件加载失败.....");
			e.printStackTrace();
		}
//		ISysConfigDao configDao = springCtx.getBean("sysConfigDaoImpl", ISysConfigDao.class);
//		List<ConfigItem> items = configDao.loadCofnigItems();
//		for (ConfigItem item : items) {
//			switch (item.getMutilValue()) {
//			case 0:
//				CommonUtilCache.putItem(item.getKey(), item);
//				
//				
//				
//				
//				break;
//			case 1:
//				if (StringUtil.isNotNull(item.getValue())) {
//					Set<String> _vals = new HashSet<String>();
//					String[] _val = item.getValue().split(",");
//					for (String str : _val) {
//						_vals.add(str);
//					}
//					CommonUtilCache.putItem(item.getKey(), _vals);
//				}
//				break;
//			}
//		}
		SimpleJdbcTemplate simple = (SimpleJdbcTemplate)springCtx.getBean(SimpleJdbcTemplate.class);
		CommonUtilCache.putItem("simple", simple);
		CommonUtilCache.putItem("ctx", ctx);
		
		System.out.println(">>>>>>>>>>>>>>>>系统配置初始化成功!");
	}
}
